///<reference path="../typings/tsd.d.ts" />
/*使用说明
该功能设置年，月，日的日期框，基于bs-datepicker插件，特殊处理了一下201606这种格式，原插件不支持它的日期识别。
$("input").autoDate('ny') ;
如果要扩展默认功能，在第2个参数定义DatepickerOptions的各个属性
*/
module AUTO {
    export class DateBox {
        private _$el: JQuery;
        private _opt: DatepickerOptions;
        constructor(element: Element, mode: string, options?: DatepickerOptions) {
            let info = {
                "n": { format: 'yyyy', startView: 2, minViewMode: 2 },
                "ny": { format: 'yyyymm', startView: 1, minViewMode: 1 },
                "nyr": { format: 'yyyy-mm-dd', startView: 0, minViewMode: 0 }
            };
            this._$el = $(element);
            this._opt = $.extend({
                weekStart: 1,
                autoclose: true,
                useCurrent: false,
                orientation: 'left bottom',
                language: 'zh-CN'
            },info[mode], options);
            this._$el.datepicker(this._opt);
            //如果是年月时，处理一下。
            if (mode == 'ny') {
                let v: string = this._$el.val()
                if (v && (/\d{6}/).test(v)) {
                    v = v.substr(0, 4) + "/" + v.substr(4);
                    this._$el.datepicker('setDate', new Date(v));
                }
            }
        }
    }
}